package org.app.appjson.reader.interfaces;

import org.app.appjson.exception.AppJsonException;

import java.io.Closeable;
import java.io.IOException;

/**
 * 字符读取器接口
 * @author lizhongsi
 * @version 1.0
 * @since 1.0
 */
public interface CharReader extends Closeable {

    // 是否存在下一个字符
    boolean hasNext() throws IOException;

    // 读取一个字符并消费它
    char next() throws IOException;

    // 预览一个字符不消费它
    char peek() throws IOException;

    // 读取一个数字
    String readNumber() throws AppJsonException;

    // 读取一个字符串
    String readString() throws AppJsonException;

    // 已读取的字符在字符串中的位置
    int index();

}
